<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>OpenShoe: UDI for Communication Device Class</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenShoe
   &#160;<span id="projectnumber">0.1</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#groups">Modules</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">UDI for Communication Device Class</div>  </div>
<div class="ingroups"><a class="el" href="group__udi__group.html">USB Device Interface (UDI)</a></div></div>
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structudi__cdc__comm__desc__t.html">udi_cdc_comm_desc_t</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Communication Class interface descriptor.  <a href="structudi__cdc__comm__desc__t.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structudi__cdc__data__desc__t.html">udi_cdc_data_desc_t</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Data Class interface descriptor.  <a href="structudi__cdc__data__desc__t.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="groups"></a>
Modules</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group__conf.html">Default CDC configuration for a USB Device</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group__desc.html">Default descriptors for a USB Device</a></td></tr>
<tr><td colspan="2"><h2><a name="var-members"></a>
Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">UDC_DESC_STORAGE <a class="el" href="structudi__api__t.html">udi_api_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gad7b0a90350a1f1a7c62fab1a749bf687">udi_api_cdc_comm</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Global struture which contains standard UDI API for UDC.  <a href="#gad7b0a90350a1f1a7c62fab1a749bf687"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">UDC_DESC_STORAGE <a class="el" href="structudi__api__t.html">udi_api_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga3f85c229cc3218b75cb4844b8e9ad2d7">udi_api_cdc_data</a></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Interface for UDC</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">UDC_DESC_STORAGE <a class="el" href="structudi__api__t.html">udi_api_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gad7b0a90350a1f1a7c62fab1a749bf687">udi_api_cdc_comm</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Global structure which contains standard UDI API for UDC.  <a href="#gad7b0a90350a1f1a7c62fab1a749bf687"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">UDC_DESC_STORAGE <a class="el" href="structudi__api__t.html">udi_api_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga3f85c229cc3218b75cb4844b8e9ad2d7">udi_api_cdc_data</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga48b8cd17138f1e31d2f705e47bd798fc">udi_cdc_comm_enable</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga1d9234e7ec38cb7fbc306b1d4624ac7d">udi_cdc_comm_disable</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga9f1ce6a914bf00a929285d4b9876ff6c">udi_cdc_comm_setup</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gacff97f0d95101ef8beebe3a7d5cf1541">udi_cdc_data_enable</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gad6183b6bb4f836b69c2a176b8a1631da">udi_cdc_data_disable</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga9a66dccf928f55850d243abd1ca51eb3">udi_cdc_data_setup</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga89512d97844e09864336d3df2f73af59">udi_cdc_getsetting</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga304bed0ef46f8046e41de6e161db0864">udi_cdc_data_sof_notify</a> (void)</td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Variables to manage RX/TX transfer requests</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp212b06c4e5cdd346092967876fa4335a"></a> Two buffers for each sense are used to optimize the speed. </p>
</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga91892013c1c5dcb7fa2127ac2e2090f7">UDI_CDC_TRANS_HALTED</a>&#160;&#160;&#160;2</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Define a transfer halted.  <a href="#ga91892013c1c5dcb7fa2127ac2e2090f7"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Routines to control serial line</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gab674a6567bc8b0da4afa5add7c361c00">udi_cdc_line_coding_received</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends lien coding to application.  <a href="#gab674a6567bc8b0da4afa5add7c361c00"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gaec142bc6fba06ca35a45d33f31840db7">udi_cdc_serial_state_msg_sent</a> (<a class="el" href="group__udd__group.html#gac0f77f5a0e085af1242b48fd1054959a">udd_ep_status_t</a> status, iram_size_t n)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Ack sent of serial state message Callback called after serial state message sent.  <a href="#gaec142bc6fba06ca35a45d33f31840db7"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Routines to process data transfer</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gaa720107e691aac776090aabc23884eb6">udi_cdc_data_recevied</a> (<a class="el" href="group__udd__group.html#gac0f77f5a0e085af1242b48fd1054959a">udd_ep_status_t</a> status, iram_size_t n)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Update RX buffer management with a new data Callback called after data reception on USB line.  <a href="#gaa720107e691aac776090aabc23884eb6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gac8eef4d87000686e33f73efda71c6e10">udi_cdc_data_sent</a> (<a class="el" href="group__udd__group.html#gac0f77f5a0e085af1242b48fd1054959a">udd_ep_status_t</a> status, iram_size_t n)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Valid TX buffer sent Callback called after data transfer on USB line.  <a href="#gac8eef4d87000686e33f73efda71c6e10"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Interface Descriptor</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp550f151b99c19ed40d4ef91c78de1c3b"></a> The following structures provide the interface descriptor. It must be implemented in USB configuration descriptor. </p>
</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gab60b7a7764b991aff0c527e8fa0ac8c8">UDI_CDC_IAD_STRING_ID</a>&#160;&#160;&#160;0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">By default no string associated to these interfaces.  <a href="#gab60b7a7764b991aff0c527e8fa0ac8c8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga4fef11b2181a17d8faac207f30c8a088">UDI_CDC_COMM_STRING_ID</a>&#160;&#160;&#160;0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga7f130213f9c935f192ad0e7a79654533">UDI_CDC_DATA_STRING_ID</a>&#160;&#160;&#160;0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga186a4ed83a0c245ad4fb377ed96ccd9c">UDI_CDC_COMM_EP_SIZE</a>&#160;&#160;&#160;64</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">CDC communication enpoints size for all speed.  <a href="#ga186a4ed83a0c245ad4fb377ed96ccd9c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gac62f6054c333924c2bef7eddaa9e57ab">UDI_CDC_DATA_EPS_SIZE</a>&#160;&#160;&#160;64</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">CDC data enpoints size for all speed (no need to use 512B for HS)  <a href="#gac62f6054c333924c2bef7eddaa9e57ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gad564430bd926e661c9de9c0b12b372f8">UDI_CDC_COMM_DESC_IFACE</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill field including interface numbers.  <a href="#gad564430bd926e661c9de9c0b12b372f8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gaccf2e8998f50f5d955bf54266c28c484">UDI_CDC_DATA_DESC_IFACE</a>&#160;&#160;&#160;.iface.bInterfaceNumber       = UDI_CDC_DATA_IFACE_NUMBER,</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga1e55408092fbf059c01ab7e81b7fd910">UDI_CDC_IAD_DESC</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga7970530df36eefc5119aadd584f82de8">UDI_CDC_COMM_DESC</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Content of CDC COMM interface descriptor for all speed.  <a href="#ga7970530df36eefc5119aadd584f82de8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gade744816217f972675f9e7e5c2204d93">UDI_CDC_DATA_DESC</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Content of CDC DATA interface descriptor for all speed.  <a href="#gade744816217f972675f9e7e5c2204d93"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Interface for application</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp57a789adfa102d7a8d7505a6e50374a2"></a> These routines are used by memory to transfer its data to/from USB CDC endpoint. </p>
</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga5507164c7c4ff2c9b94af48229dc0c3c">udi_cdc_ctrl_signal_dcd</a> (bool b_set)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Notify a state change of DCD signal.  <a href="#ga5507164c7c4ff2c9b94af48229dc0c3c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga6b34b223f6c03cd35fc16d29cb9cfb78">udi_cdc_ctrl_signal_dsr</a> (bool b_set)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Notify a state change of DSR signal.  <a href="#ga6b34b223f6c03cd35fc16d29cb9cfb78"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gaf62c55c329d7e7ff3913274b124e54aa">udi_cdc_signal_framing_error</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Notify a framing error.  <a href="#gaf62c55c329d7e7ff3913274b124e54aa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gab6dd1be8afa57a1bece870338bdc5f74">udi_cdc_signal_parity_error</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Notify a parity error.  <a href="#gab6dd1be8afa57a1bece870338bdc5f74"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga7730a564c9cb117af611958500a4fa7f">udi_cdc_signal_overrun</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Notify a overrun.  <a href="#ga7730a564c9cb117af611958500a4fa7f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gab5beb4e918e089e0eacf20dba1df73ea">udi_cdc_is_rx_ready</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function checks if a character has been received on the CDC line.  <a href="#gab5beb4e918e089e0eacf20dba1df73ea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga202f3fd7b153f6e1a41601735e0febb6">udi_cdc_getc</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits and gets a value on CDC line.  <a href="#ga202f3fd7b153f6e1a41601735e0febb6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">iram_size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#gaa7374616de8bc3a83de3f1884b56fa39">udi_cdc_read_buf</a> (int *buf, iram_size_t size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a RAM buffer on CDC line.  <a href="#gaa7374616de8bc3a83de3f1884b56fa39"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga7d0d458a5731da95dd05f30714c42dde">udi_cdc_is_tx_ready</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function checks if a new character sent is possible The type int is used to support scanf redirection from compiler LIB.  <a href="#ga7d0d458a5731da95dd05f30714c42dde"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga8faae3fcf4911017c0fcf0aa127179f6">udi_cdc_putc</a> (int value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Puts a byte on CDC line The type int is used to support printf redirection from compiler LIB.  <a href="#ga8faae3fcf4911017c0fcf0aa127179f6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">iram_size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__udi__cdc__group.html#ga88f09b3f954620d37bf882e6d1874c42">udi_cdc_write_buf</a> (const int *buf, iram_size_t size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a RAM buffer on CDC line.  <a href="#ga88f09b3f954620d37bf882e6d1874c42"></a><br/></td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="ga7970530df36eefc5119aadd584f82de8"></a><!-- doxytag: member="udi_cdc.h::UDI_CDC_COMM_DESC" ref="ga7970530df36eefc5119aadd584f82de8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UDI_CDC_COMM_DESC</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Content of CDC COMM interface descriptor for all speed. </p>

</div>
</div>
<a class="anchor" id="gad564430bd926e661c9de9c0b12b372f8"></a><!-- doxytag: member="udi_cdc.h::UDI_CDC_COMM_DESC_IFACE" ref="gad564430bd926e661c9de9c0b12b372f8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UDI_CDC_COMM_DESC_IFACE</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">.iface.bInterfaceNumber       = <a class="code" href="group__udi__cdc__group__conf.html#ga003b73c73417cdaaea1a310aa2441c7b" title="Interface numbers.">UDI_CDC_COMM_IFACE_NUMBER</a>,\
   .call_mgmt.bDataInterface     = <a class="code" href="group__udi__cdc__group__conf.html#ga4c16d6b2299e5d692ea818142da68dcb">UDI_CDC_DATA_IFACE_NUMBER</a>,\
   .union_desc.bMasterInterface  = <a class="code" href="group__udi__cdc__group__conf.html#ga003b73c73417cdaaea1a310aa2441c7b" title="Interface numbers.">UDI_CDC_COMM_IFACE_NUMBER</a>,\
   .union_desc.bSlaveInterface0  = <a class="code" href="group__udi__cdc__group__conf.html#ga4c16d6b2299e5d692ea818142da68dcb">UDI_CDC_DATA_IFACE_NUMBER</a>,
</pre></div>
<p>Fill field including interface numbers. </p>

</div>
</div>
<a class="anchor" id="ga186a4ed83a0c245ad4fb377ed96ccd9c"></a><!-- doxytag: member="udi_cdc.h::UDI_CDC_COMM_EP_SIZE" ref="ga186a4ed83a0c245ad4fb377ed96ccd9c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UDI_CDC_COMM_EP_SIZE&#160;&#160;&#160;64</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>CDC communication enpoints size for all speed. </p>

</div>
</div>
<a class="anchor" id="ga4fef11b2181a17d8faac207f30c8a088"></a><!-- doxytag: member="udi_cdc.h::UDI_CDC_COMM_STRING_ID" ref="ga4fef11b2181a17d8faac207f30c8a088" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UDI_CDC_COMM_STRING_ID&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="gade744816217f972675f9e7e5c2204d93"></a><!-- doxytag: member="udi_cdc.h::UDI_CDC_DATA_DESC" ref="gade744816217f972675f9e7e5c2204d93" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UDI_CDC_DATA_DESC</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">{\
   UDI_CDC_DATA_DESC_IFACE \
   .iface.bLength                = <span class="keyword">sizeof</span>(<a class="code" href="structusb__iface__desc__t.html" title="Standard USB interface descriptor structure.">usb_iface_desc_t</a>),\
   .iface.bDescriptorType        = <a class="code" href="group__usb__protocol__group.html#gga87d46dd117d939964c939f1518dec93fa5d95804e21ff8a4aba8f9806c5f35edc">USB_DT_INTERFACE</a>,\
   .iface.bAlternateSetting      = 0,\
   .iface.bNumEndpoints          = 2,\
   .iface.bInterfaceClass        = <a class="code" href="group__cdc__protocol__group.html#ga799bb47bad1d048e420886c575835eb4" title="CDC Data Class Interface.">CDC_CLASS_DATA</a>,\
   .iface.bInterfaceSubClass     = 0,\
   .iface.bInterfaceProtocol     = 0,\
   .iface.iInterface             = <a class="code" href="group__udi__cdc__group.html#ga7f130213f9c935f192ad0e7a79654533">UDI_CDC_DATA_STRING_ID</a>,\
   .ep_in.bLength                = <span class="keyword">sizeof</span>(<a class="code" href="structusb__ep__desc__t.html" title="Standard USB endpoint descriptor stcuture.">usb_ep_desc_t</a>),\
   .ep_in.bDescriptorType        = <a class="code" href="group__usb__protocol__group.html#gga87d46dd117d939964c939f1518dec93fa2b4e1c2a152ef2c70fd494de1806e325">USB_DT_ENDPOINT</a>,\
   .ep_in.bEndpointAddress       = <a class="code" href="group__udi__cdc__group__conf.html#ga7ff6a7c82fc57177ccf13fa6d265371b" title="Endpoints&#39; numbers used by single CDC interface.">UDI_CDC_DATA_EP_IN</a>,\
   .ep_in.wMaxPacketSize         = LE16(<a class="code" href="group__udi__cdc__group.html#gac62f6054c333924c2bef7eddaa9e57ab" title="CDC data enpoints size for all speed (no need to use 512B for HS)">UDI_CDC_DATA_EPS_SIZE</a>),\
   .ep_in.bmAttributes           = <a class="code" href="group__usb__protocol__group.html#gga666def795a15032e5bf93a450f79113fa173f6c972814d347875b71d85ddfc1b1">USB_EP_TYPE_BULK</a>,\
   .ep_in.bInterval              = 0,\
   .ep_out.bLength               = <span class="keyword">sizeof</span>(<a class="code" href="structusb__ep__desc__t.html" title="Standard USB endpoint descriptor stcuture.">usb_ep_desc_t</a>),\
   .ep_out.bDescriptorType       = <a class="code" href="group__usb__protocol__group.html#gga87d46dd117d939964c939f1518dec93fa2b4e1c2a152ef2c70fd494de1806e325">USB_DT_ENDPOINT</a>,\
   .ep_out.bEndpointAddress      = <a class="code" href="group__udi__cdc__group__conf.html#gab4fa2fb6e6858512f9218a9417adb9b5">UDI_CDC_DATA_EP_OUT</a>,\
   .ep_out.wMaxPacketSize        = LE16(<a class="code" href="group__udi__cdc__group.html#gac62f6054c333924c2bef7eddaa9e57ab" title="CDC data enpoints size for all speed (no need to use 512B for HS)">UDI_CDC_DATA_EPS_SIZE</a>),\
   .ep_out.bmAttributes          = <a class="code" href="group__usb__protocol__group.html#gga666def795a15032e5bf93a450f79113fa173f6c972814d347875b71d85ddfc1b1">USB_EP_TYPE_BULK</a>,\
   .ep_out.bInterval             = 0,\
   }
</pre></div>
<p>Content of CDC DATA interface descriptor for all speed. </p>

</div>
</div>
<a class="anchor" id="gaccf2e8998f50f5d955bf54266c28c484"></a><!-- doxytag: member="udi_cdc.h::UDI_CDC_DATA_DESC_IFACE" ref="gaccf2e8998f50f5d955bf54266c28c484" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UDI_CDC_DATA_DESC_IFACE&#160;&#160;&#160;.iface.bInterfaceNumber       = UDI_CDC_DATA_IFACE_NUMBER,</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="gac62f6054c333924c2bef7eddaa9e57ab"></a><!-- doxytag: member="udi_cdc.h::UDI_CDC_DATA_EPS_SIZE" ref="gac62f6054c333924c2bef7eddaa9e57ab" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UDI_CDC_DATA_EPS_SIZE&#160;&#160;&#160;64</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>CDC data enpoints size for all speed (no need to use 512B for HS) </p>

</div>
</div>
<a class="anchor" id="ga7f130213f9c935f192ad0e7a79654533"></a><!-- doxytag: member="udi_cdc.h::UDI_CDC_DATA_STRING_ID" ref="ga7f130213f9c935f192ad0e7a79654533" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UDI_CDC_DATA_STRING_ID&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ga1e55408092fbf059c01ab7e81b7fd910"></a><!-- doxytag: member="udi_cdc.h::UDI_CDC_IAD_DESC" ref="ga1e55408092fbf059c01ab7e81b7fd910" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UDI_CDC_IAD_DESC</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">{\
   .bLength                      = <span class="keyword">sizeof</span>(<a class="code" href="structusb__iad__desc__t.html" title="Standard USB association descriptor structure.">usb_iad_desc_t</a>),\
   .bDescriptorType              = <a class="code" href="group__usb__protocol__group.html#gga87d46dd117d939964c939f1518dec93fae32d49584455205c80a5675e933810f5">USB_DT_IAD</a>,\
   .bFirstInterface              = <a class="code" href="group__udi__cdc__group__conf.html#ga003b73c73417cdaaea1a310aa2441c7b" title="Interface numbers.">UDI_CDC_COMM_IFACE_NUMBER</a>,\
   .bInterfaceCount              = 2,\
   .bFunctionClass               = <a class="code" href="group__cdc__protocol__group.html#gaf3d488254ba4df34163f9938fe515746" title="CDC Communication Class Interface.">CDC_CLASS_COMM</a>,\
   .bFunctionSubClass            = <a class="code" href="group__cdc__protocol__group.html#gacce3aedc4473cc5526efc16448b89221" title="Abstract Control Model.">CDC_SUBCLASS_ACM</a>,\
   .bFunctionProtocol            = <a class="code" href="group__cdc__protocol__group.html#ga987e4a1ebce34edcea106094d6241032" title="Common AT commands.">CDC_PROTOCOL_V25TER</a>,\
   .iFunction                    = <a class="code" href="group__udi__cdc__group.html#gab60b7a7764b991aff0c527e8fa0ac8c8" title="By default no string associated to these interfaces.">UDI_CDC_IAD_STRING_ID</a>,\
   }
</pre></div>
</div>
</div>
<a class="anchor" id="gab60b7a7764b991aff0c527e8fa0ac8c8"></a><!-- doxytag: member="udi_cdc.h::UDI_CDC_IAD_STRING_ID" ref="gab60b7a7764b991aff0c527e8fa0ac8c8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UDI_CDC_IAD_STRING_ID&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>By default no string associated to these interfaces. </p>

</div>
</div>
<a class="anchor" id="ga91892013c1c5dcb7fa2127ac2e2090f7"></a><!-- doxytag: member="udi_cdc.c::UDI_CDC_TRANS_HALTED" ref="ga91892013c1c5dcb7fa2127ac2e2090f7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UDI_CDC_TRANS_HALTED&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Define a transfer halted. </p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga1d9234e7ec38cb7fbc306b1d4624ac7d"></a><!-- doxytag: member="udi_cdc.c::udi_cdc_comm_disable" ref="ga1d9234e7ec38cb7fbc306b1d4624ac7d" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void udi_cdc_comm_disable </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ga48b8cd17138f1e31d2f705e47bd798fc"></a><!-- doxytag: member="udi_cdc.c::udi_cdc_comm_enable" ref="ga48b8cd17138f1e31d2f705e47bd798fc" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool udi_cdc_comm_enable </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ga9f1ce6a914bf00a929285d4b9876ff6c"></a><!-- doxytag: member="udi_cdc.c::udi_cdc_comm_setup" ref="ga9f1ce6a914bf00a929285d4b9876ff6c" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool udi_cdc_comm_setup </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ga5507164c7c4ff2c9b94af48229dc0c3c"></a><!-- doxytag: member="udi_cdc.h::udi_cdc_ctrl_signal_dcd" ref="ga5507164c7c4ff2c9b94af48229dc0c3c" args="(bool b_set)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void udi_cdc_ctrl_signal_dcd </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>b_set</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Notify a state change of DCD signal. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">b_set</td><td>DCD is enabled if true, else disabled </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga6b34b223f6c03cd35fc16d29cb9cfb78"></a><!-- doxytag: member="udi_cdc.h::udi_cdc_ctrl_signal_dsr" ref="ga6b34b223f6c03cd35fc16d29cb9cfb78" args="(bool b_set)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void udi_cdc_ctrl_signal_dsr </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>b_set</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Notify a state change of DSR signal. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">b_set</td><td>DSR is enabled if true, else disabled </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gad6183b6bb4f836b69c2a176b8a1631da"></a><!-- doxytag: member="udi_cdc.c::udi_cdc_data_disable" ref="gad6183b6bb4f836b69c2a176b8a1631da" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void udi_cdc_data_disable </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="gacff97f0d95101ef8beebe3a7d5cf1541"></a><!-- doxytag: member="udi_cdc.c::udi_cdc_data_enable" ref="gacff97f0d95101ef8beebe3a7d5cf1541" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool udi_cdc_data_enable </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="gaa720107e691aac776090aabc23884eb6"></a><!-- doxytag: member="udi_cdc.c::udi_cdc_data_recevied" ref="gaa720107e691aac776090aabc23884eb6" args="(udd_ep_status_t status, iram_size_t n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void udi_cdc_data_recevied </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__udd__group.html#gac0f77f5a0e085af1242b48fd1054959a">udd_ep_status_t</a>&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">iram_size_t&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Update RX buffer management with a new data Callback called after data reception on USB line. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">status</td><td>UDD_EP_TRANSFER_OK, if transfer finish </td></tr>
    <tr><td class="paramname">status</td><td>UDD_EP_TRANSFER_ABORT, if transfer aborted </td></tr>
    <tr><td class="paramname">n</td><td>number of data received </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gac8eef4d87000686e33f73efda71c6e10"></a><!-- doxytag: member="udi_cdc.c::udi_cdc_data_sent" ref="gac8eef4d87000686e33f73efda71c6e10" args="(udd_ep_status_t status, iram_size_t n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void udi_cdc_data_sent </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__udd__group.html#gac0f77f5a0e085af1242b48fd1054959a">udd_ep_status_t</a>&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">iram_size_t&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Valid TX buffer sent Callback called after data transfer on USB line. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">status</td><td>UDD_EP_TRANSFER_OK, if transfer finished </td></tr>
    <tr><td class="paramname">status</td><td>UDD_EP_TRANSFER_ABORT, if transfer aborted </td></tr>
    <tr><td class="paramname">n</td><td>number of data transfered </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga9a66dccf928f55850d243abd1ca51eb3"></a><!-- doxytag: member="udi_cdc.c::udi_cdc_data_setup" ref="ga9a66dccf928f55850d243abd1ca51eb3" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool udi_cdc_data_setup </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ga304bed0ef46f8046e41de6e161db0864"></a><!-- doxytag: member="udi_cdc.c::udi_cdc_data_sof_notify" ref="ga304bed0ef46f8046e41de6e161db0864" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void udi_cdc_data_sof_notify </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ga202f3fd7b153f6e1a41601735e0febb6"></a><!-- doxytag: member="udi_cdc.h::udi_cdc_getc" ref="ga202f3fd7b153f6e1a41601735e0febb6" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int udi_cdc_getc </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Waits and gets a value on CDC line. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>value read on CDC line </dd></dl>

</div>
</div>
<a class="anchor" id="ga89512d97844e09864336d3df2f73af59"></a><!-- doxytag: member="udi_cdc.c::udi_cdc_getsetting" ref="ga89512d97844e09864336d3df2f73af59" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t udi_cdc_getsetting </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="gab5beb4e918e089e0eacf20dba1df73ea"></a><!-- doxytag: member="udi_cdc.h::udi_cdc_is_rx_ready" ref="gab5beb4e918e089e0eacf20dba1df73ea" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool udi_cdc_is_rx_ready </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function checks if a character has been received on the CDC line. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd><code>1</code> if a byte is ready to be read. </dd></dl>

</div>
</div>
<a class="anchor" id="ga7d0d458a5731da95dd05f30714c42dde"></a><!-- doxytag: member="udi_cdc.h::udi_cdc_is_tx_ready" ref="ga7d0d458a5731da95dd05f30714c42dde" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool udi_cdc_is_tx_ready </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function checks if a new character sent is possible The type int is used to support scanf redirection from compiler LIB. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd><code>1</code> if a new chracter can be sent </dd></dl>

</div>
</div>
<a class="anchor" id="gab674a6567bc8b0da4afa5add7c361c00"></a><!-- doxytag: member="udi_cdc.c::udi_cdc_line_coding_received" ref="gab674a6567bc8b0da4afa5add7c361c00" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void udi_cdc_line_coding_received </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sends lien coding to application. </p>
<p>Called after SETUP request when line coding data is received. </p>

</div>
</div>
<a class="anchor" id="ga8faae3fcf4911017c0fcf0aa127179f6"></a><!-- doxytag: member="udi_cdc.h::udi_cdc_putc" ref="ga8faae3fcf4911017c0fcf0aa127179f6" args="(int value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int udi_cdc_putc </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Puts a byte on CDC line The type int is used to support printf redirection from compiler LIB. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>Value to put</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><code>1</code> if function was successfully done, otherwise <code>0</code>. </dd></dl>

</div>
</div>
<a class="anchor" id="gaa7374616de8bc3a83de3f1884b56fa39"></a><!-- doxytag: member="udi_cdc.h::udi_cdc_read_buf" ref="gaa7374616de8bc3a83de3f1884b56fa39" args="(int *buf, iram_size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">iram_size_t udi_cdc_read_buf </td>
          <td>(</td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">iram_size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads a RAM buffer on CDC line. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>Values readed </td></tr>
    <tr><td class="paramname">size</td><td>Number of value readed</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of data remaining </dd></dl>

</div>
</div>
<a class="anchor" id="gaec142bc6fba06ca35a45d33f31840db7"></a><!-- doxytag: member="udi_cdc.c::udi_cdc_serial_state_msg_sent" ref="gaec142bc6fba06ca35a45d33f31840db7" args="(udd_ep_status_t status, iram_size_t n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void udi_cdc_serial_state_msg_sent </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__udd__group.html#gac0f77f5a0e085af1242b48fd1054959a">udd_ep_status_t</a>&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">iram_size_t&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Ack sent of serial state message Callback called after serial state message sent. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">status</td><td>UDD_EP_TRANSFER_OK, if transfer finished </td></tr>
    <tr><td class="paramname">status</td><td>UDD_EP_TRANSFER_ABORT, if transfer aborted </td></tr>
    <tr><td class="paramname">n</td><td>number of data transfered </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaf62c55c329d7e7ff3913274b124e54aa"></a><!-- doxytag: member="udi_cdc.h::udi_cdc_signal_framing_error" ref="gaf62c55c329d7e7ff3913274b124e54aa" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void udi_cdc_signal_framing_error </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Notify a framing error. </p>

</div>
</div>
<a class="anchor" id="ga7730a564c9cb117af611958500a4fa7f"></a><!-- doxytag: member="udi_cdc.h::udi_cdc_signal_overrun" ref="ga7730a564c9cb117af611958500a4fa7f" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void udi_cdc_signal_overrun </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Notify a overrun. </p>

</div>
</div>
<a class="anchor" id="gab6dd1be8afa57a1bece870338bdc5f74"></a><!-- doxytag: member="udi_cdc.h::udi_cdc_signal_parity_error" ref="gab6dd1be8afa57a1bece870338bdc5f74" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void udi_cdc_signal_parity_error </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Notify a parity error. </p>

</div>
</div>
<a class="anchor" id="ga88f09b3f954620d37bf882e6d1874c42"></a><!-- doxytag: member="udi_cdc.h::udi_cdc_write_buf" ref="ga88f09b3f954620d37bf882e6d1874c42" args="(const int *buf, iram_size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">iram_size_t udi_cdc_write_buf </td>
          <td>(</td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">iram_size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Writes a RAM buffer on CDC line. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>Values to write </td></tr>
    <tr><td class="paramname">size</td><td>Number of value to write</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of data remaining </dd></dl>

</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="gad7b0a90350a1f1a7c62fab1a749bf687"></a><!-- doxytag: member="udi_cdc.c::udi_api_cdc_comm" ref="gad7b0a90350a1f1a7c62fab1a749bf687" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">UDC_DESC_STORAGE <a class="el" href="structudi__api__t.html">udi_api_t</a> <a class="el" href="group__udi__cdc__group.html#gad7b0a90350a1f1a7c62fab1a749bf687">udi_api_cdc_comm</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
        .enable = <a class="code" href="group__udi__cdc__group.html#ga48b8cd17138f1e31d2f705e47bd798fc">udi_cdc_comm_enable</a>,
        .disable = <a class="code" href="group__udi__cdc__group.html#ga1d9234e7ec38cb7fbc306b1d4624ac7d">udi_cdc_comm_disable</a>,
        .setup = <a class="code" href="group__udi__cdc__group.html#ga9f1ce6a914bf00a929285d4b9876ff6c">udi_cdc_comm_setup</a>,
        .getsetting = <a class="code" href="group__udi__cdc__group.html#ga89512d97844e09864336d3df2f73af59">udi_cdc_getsetting</a>,
}
</pre></div>
<p>Global structure which contains standard UDI API for UDC. </p>
<p>Global struture which contains standard UDI API for UDC. </p>

</div>
</div>
<a class="anchor" id="gad7b0a90350a1f1a7c62fab1a749bf687"></a><!-- doxytag: member="udi_cdc.h::udi_api_cdc_comm" ref="gad7b0a90350a1f1a7c62fab1a749bf687" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">UDC_DESC_STORAGE <a class="el" href="structudi__api__t.html">udi_api_t</a> <a class="el" href="group__udi__cdc__group.html#gad7b0a90350a1f1a7c62fab1a749bf687">udi_api_cdc_comm</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Global struture which contains standard UDI API for UDC. </p>

</div>
</div>
<a class="anchor" id="ga3f85c229cc3218b75cb4844b8e9ad2d7"></a><!-- doxytag: member="udi_cdc.c::udi_api_cdc_data" ref="ga3f85c229cc3218b75cb4844b8e9ad2d7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">UDC_DESC_STORAGE <a class="el" href="structudi__api__t.html">udi_api_t</a> <a class="el" href="group__udi__cdc__group.html#ga3f85c229cc3218b75cb4844b8e9ad2d7">udi_api_cdc_data</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
        .enable = <a class="code" href="group__udi__cdc__group.html#gacff97f0d95101ef8beebe3a7d5cf1541">udi_cdc_data_enable</a>,
        .disable = <a class="code" href="group__udi__cdc__group.html#gad6183b6bb4f836b69c2a176b8a1631da">udi_cdc_data_disable</a>,
        .setup = <a class="code" href="group__udi__cdc__group.html#ga9a66dccf928f55850d243abd1ca51eb3">udi_cdc_data_setup</a>,
        .getsetting = <a class="code" href="group__udi__cdc__group.html#ga89512d97844e09864336d3df2f73af59">udi_cdc_getsetting</a>,
        .sof_notify =   <a class="code" href="group__udi__cdc__group.html#ga304bed0ef46f8046e41de6e161db0864">udi_cdc_data_sof_notify</a>,
}
</pre></div>
</div>
</div>
<a class="anchor" id="ga3f85c229cc3218b75cb4844b8e9ad2d7"></a><!-- doxytag: member="udi_cdc.h::udi_api_cdc_data" ref="ga3f85c229cc3218b75cb4844b8e9ad2d7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">UDC_DESC_STORAGE <a class="el" href="structudi__api__t.html">udi_api_t</a> <a class="el" href="group__udi__cdc__group.html#ga3f85c229cc3218b75cb4844b8e9ad2d7">udi_api_cdc_data</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated on Mon Dec 19 2011 21:04:54 for OpenShoe by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.5.1
</small></address>

</body>
</html>
